load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")

package(default_visibility = ["//visibility:public"])

go_library(
    name = "descriptor",
    srcs = [
        "grpc_api_configuration.go",
        "openapi_configuration.go",
        "registry.go",
        "services.go",
        "types.go",
    ],
    importpath = "github.com/grpc-ecosystem/grpc-gateway/v2/internal/descriptor",
    deps = [
        "//internal/casing",
        "//internal/codegenerator",
        "//internal/descriptor/apiconfig",
        "//internal/descriptor/openapiconfig",
        "//internal/httprule",
        "//protoc-gen-openapiv2/options",
        "@in_gopkg_yaml_v3//:yaml_v3",
        "@org_golang_google_genproto_googleapis_api//annotations",
        "@org_golang_google_grpc//grpclog",
        "@org_golang_google_protobuf//compiler/protogen",
        "@org_golang_google_protobuf//encoding/protojson",
        "@org_golang_google_protobuf//proto",
        "@org_golang_google_protobuf//types/descriptorpb",
        "@org_golang_google_protobuf//types/pluginpb",
        "@org_golang_x_text//cases",
        "@org_golang_x_text//language",
    ],
)

go_test(
    name = "descriptor_test",
    size = "small",
    srcs = [
        "grpc_api_configuration_test.go",
        "openapi_configuration_test.go",
        "registry_test.go",
        "services_test.go",
        "types_test.go",
    ],
    embed = [":descriptor"],
    deps = [
        "//internal/descriptor/openapiconfig",
        "//internal/httprule",
        "//protoc-gen-openapiv2/options",
        "@org_golang_google_protobuf//compiler/protogen",
        "@org_golang_google_protobuf//encoding/prototext",
        "@org_golang_google_protobuf//proto",
        "@org_golang_google_protobuf//types/descriptorpb",
        "@org_golang_google_protobuf//types/pluginpb",
    ],
)

alias(
    name = "go_default_library",
    actual = ":descriptor",
    visibility = ["//:__subpackages__"],
)
